#define _CRT_SECURE_NO_WARNINGS 1

#include<string.h>
#include<stdio.h>

//#include <iostream>
//using namespace std;
//
//int main()
//{
//    void sort(int arr[], int n);
//    void sort_out(double arr[], int n);
//    int n;
//    int arr[10];
//    double arr1[10];
//    cin >> n;
//    for (int i = 0; i < n; i++)
//    {
//        cin >> arr[i];
//    }
//    sort(arr, n);
//    for (int i = 0; i < n; i++)
//    {
//        cin >> arr1[i];
//    }
//    sort_out(arr1, n);
//    for (int i = 0; i < n; i++)
//    {
//        cout << arr[i] << " ";
//    }
//    cout << endl;
//    for (int i = 0; i < n; i++)
//    {
//        cout << arr1[i] << " ";
//    }
//    return 0;
//}
//void sort(int arr[], int n)
//{
//    int k, j, t;
//    for (int i = 0; i < n - 1; i++)
//    {
//        k = i;
//        for (j = i + 1; j < n; j++)
//            if (arr[j] < arr[k])
//                k = j;
//        t = arr[k]; arr[k] = arr[i]; arr[i] = t;
//    }
//}
//void sort_out(double arr[], int n)
//{
//    int j, k;
//    double t;
//    for (int i = 0; i < n - 1; i++)
//    {
//        k = i;
//        for (j = i + 1; j < n; j++)
//            if (arr[j] < arr[k])
//                k = j;
//        t = arr[k]; arr[k] = arr[i]; arr[i] = t;
//    }
//}



//char pairs(char a) {
//    if (a == '}') return '{';
//    if (a == ']') return '[';
//    if (a == ')') return '(';
//    return 0;
//}
//
//bool isValid(char* s) {
//    int n = strlen(s);
//    if (n % 2 == 1) {
//        return false;
//    }
//    int stk[10], top = 0;
//    for (int i = 0; i < n; i++) {
//        char ch = pairs(s[i]);
//        if (ch) {
//            if (top == 0 || stk[top - 1] != ch) {
//                return false;
//            }
//            top--;
//        }
//        else {
//            stk[top++] = s[i];
//        }
//    }
//    return top == 0;
//}

char getsign(char a)
{
    if (a == ')')
    {
        return '(';
    }
    if (a == '}')
    {
        return '{';
    }    if (a == ']')
    {
        return '[';
    }
    return 0;
}

bool isValid(char* s) {
    int len = strlen(s);
    if (len % 2 != 0)
    {
        return false;
    }
    char sign = 0;
    int left = 0;
    int str[10];
    for (int i = 0; i < len; i++)
    {
        sign = getsign(s[i]);
        if (sign)
        {
            if (left == 0 || str[left - 1] != sign)
            {
                return false;
            }
            left--;
        }
        else
        {
            str[left++] = s[i];
        }
    }
    return true;
}

int main()
{
    char arr[] = { "((" };
    isValid(arr);
    return 0;
}